package com.bfxy.springcloud.api;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

@RestController
public class ConsumerController {

	// spring cloud 之间的服务调用都是基于 http 的这里就使用  RestTemplate 来调用
	@Autowired
	private RestTemplate restTemplate;
	
	@RequestMapping(value = "/getByUrl",method = {RequestMethod.GET})
	public String getByUrl() {
		// 这种方式就是相当于服务间之间的调用，就是 http 方式的调用。
		// 但是它并没有依赖到service 调用。并没有依赖到注册中心。  注意这个 url是 provider的 ip地址
		ResponseEntity<String>  entity = restTemplate.getForEntity("http://eureka1:7001/provider/index", String.class);
		String ret = entity.getBody();
		System.err.println( "返回 【provider】服务调用结果 ： "+ret);
		return "--- get By Url --- : " + ret;
	}
	
	
	@RequestMapping(value = "/getByServiceName",method = {RequestMethod.GET})
	public String getByServiceName() {
		// 我们希望用到注册中心的方式，用服务的名称来调用
		ResponseEntity<String>  entity = restTemplate.getForEntity("http://provider-service/provider/index", String.class);
		String ret = entity.getBody();
		System.err.println( "返回 【provider】服务调用结果 ： "+ret);
		return "--- get By Service Name --- : " + ret;
	}
	
}
